﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Caixa.BLL;
using Caixa.Model;

namespace Caixa
{
	public partial class Frm_Acesso : Caixa.Frm_Base
	{
		#region " Variables "

		TextBox text = null;

		#endregion

		#region " Constructor "

		public Frm_Acesso()
		{
			InitializeComponent();
		}

		#endregion

		#region " Events "

		private void Frm_Acesso_Load(object sender, EventArgs e)
		{
			tecladoVirtual.TeclaAcionada += new Caixa.Controls.TecladoVirtual.TeclaAcionadaEventHandler(tecladoVirtual_TeclaAcionada);
		}

		protected void tecladoVirtual_TeclaAcionada(Caixa.Controls.TecladoVirtual.Tecla tecla)
		{
			if (text != null)
			{
				switch (tecla)
				{
					case Caixa.Controls.TecladoVirtual.Tecla.Num0:
					case Caixa.Controls.TecladoVirtual.Tecla.Num1:
					case Caixa.Controls.TecladoVirtual.Tecla.Num2:
					case Caixa.Controls.TecladoVirtual.Tecla.Num3:
					case Caixa.Controls.TecladoVirtual.Tecla.Num4:
					case Caixa.Controls.TecladoVirtual.Tecla.Num5:
					case Caixa.Controls.TecladoVirtual.Tecla.Num6:
					case Caixa.Controls.TecladoVirtual.Tecla.Num7:
					case Caixa.Controls.TecladoVirtual.Tecla.Num8:
					case Caixa.Controls.TecladoVirtual.Tecla.Num9:
						text.Text += Convert.ToInt32(tecla).ToString();
						break;
					case Caixa.Controls.TecladoVirtual.Tecla.Corrige:
						if (text.Text.Length > 0)
							text.Text = text.Text.Substring(0, text.Text.Length - 1);
						break;
					case Caixa.Controls.TecladoVirtual.Tecla.Confirma:
						// Valida o login da conta do usuário
						int numeroConta;
						int.TryParse(string.Format("{0}", txtConta.Text), out numeroConta);
						try
						{
							if (ContaBLL.ValidaAcesso(numeroConta, txtSenha.Text))
							{
								CaixaEletronicoBLL.ContaLogada = ContaBLL.GetByNumero(numeroConta);
								this.Close();
							}
						}
						catch (Exception e)
						{
							MessageBox.Show(e.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Warning);
							text.Focus();
						}
						break;
					default:
						break;
				}
			}
		}

		private void txt_Enter(object sender, EventArgs e)
		{
			if (sender is TextBox)
			{
				text = (sender as TextBox);
			}
		}

		private void txtConta_TextChanged(object sender, EventArgs e)
		{
			TextBox obj = (sender as TextBox);
			if (obj.Text.Length >= 5)
				this.SelectNextControl(obj, true, false, true, true);
		}

		private void txtSenha_TextChanged(object sender, EventArgs e)
		{
			TextBox obj = (sender as TextBox);
			if (obj.Text.Length.Equals(0))
				this.SelectNextControl(obj, false, true, true, true);
		}

		#endregion
	}
}
